package model;

import java.util.ArrayList;
import java.util.Collections;

public class Ladron extends Sospechoso{

	private RutaDeEscape estrategia;
	private ObjetoRobado objeto;
	private Lugar lugarActual;

	public Ladron(Descripcion unaDescripcion, ObjetoRobado unObjeto){
		super(unaDescripcion);
		this.objeto = unObjeto;
		this.estrategia = null;	
	}
		
	public Ciudad obtenerUltimoDestino(){
		return this.estrategia.obtenerUltimoDestino();
	}
	
	public void generarRutaDeEscape(ArrayList<Ciudad> ciudadesDelMundo){
		int rango = this.objeto.obtenerNroDeCiudades();
		ArrayList<Ciudad> ciudades = new ArrayList<Ciudad>();
		Collections.shuffle(ciudadesDelMundo);
		int i= 0;
		int carga = 0;
		while( carga < rango ){
			if(!(ciudadesDelMundo.get(i).obtenerNombre().equals(this.objeto.obtenerCiudadDondeFueRobado().obtenerNombre()))){
				ciudades.add(ciudadesDelMundo.get(i));
				carga++;
			}
			i++;
		}
		
		this.estrategia = new RutaDeEscape(ciudades);
		String[] lugares = {"Banco", "Biblioteca", "Aeropuerto"};
		String lugRandom = lugares[(int)(Math.random()*lugares.length)];
		this.lugarActual = this.estrategia.obtenerUltimoDestino().obtenerLugar(lugRandom);
	}

	public ArrayList<Ciudad> obtenerRecorrido(){
		return this.estrategia.obtenerCiudades();
	}

	public Lugar obtenerLugarActual(){
		return this.lugarActual;
	}
}
